
package recuperativa;


import java.awt.*;



public class Celula {

    public int fila;
    public int col;
    public boolean viva;
    public Button boton;


    public Celula(int fila, int col)
    {
        this.fila = fila;
        this.col = col;
        this.viva = false;
        this.boton = new Button("");
        matar();
    }

    public void matar()
    {
        this.viva = false;
        this.boton.setBackground(Color.white);
    }

    public void nacer()
    {
        this.viva = true;
        this.boton.setBackground(Color.blue);
    }

    public void invertir()
    {
        if (viva) matar();
        else nacer();
    }
    
    public int getNumeroVecinosVivos(boolean[][] estados)
    {
        int suma = 0;

        for (int i=-1; i<=1; i++)
        {
            for (int j=-1; j<=1; j++)
            {

                int filaVecino = fila + i;
                int colVecino = col + j;

                // Ella misma no cuenta como vecino
                if (i == 0 && j == 0)
                    continue;

                // Fila y columna invalidos
                if ((filaVecino == -1) || (filaVecino == estados.length) || (colVecino == -1) || (colVecino == estados.length))
                    continue;

                // Vecino vivo suma 1
                if (estados[filaVecino][colVecino])
                {
                    //System.out.println("Sumandole vecino "+ filaVecino +", "+ colVecino);
                    suma++;
                }

            }
        }

        //System.out.println("Vecinos vivos de ("+ fila +", "+ col +") son = "+ suma);
        return suma;
    }
}
